# Supported API providers
SUPPORTED_APIS = {
    'ollama',
    'openai', 
    'deepseek',
    'tongyi'
}

# Terminal colors and formatting
PROMPT_SYMBOL = '\033[1;32m>>>\033[0m '
MULTILINE_PROMPT = '\033[1;34m...\033[0m '
MULTILINE_END = '"""'

# Chat commands
HELP_COMMANDS = {'/?', '/h', '/help'}
CLEAR_COMMANDS = {'/c', '/clear'}
QUIT_COMMANDS = {'/q', '/quit', '/bye', '/exit'}
LIST_COMMANDS = {'/ls', '/list'}

# File processing
FILE_TAG_PATTERN = r'\[(.*?)\]'
MAX_FILE_SIZE = 1024 * 1024  # 1MB limit for file processing

# Error messages
ERROR_MESSAGES = {
    'invalid_api': 'Invalid API provider: `{api}`',
    'invalid_model': 'Invalid model: `{model}`',
    'file_not_found': 'File not found: {file_path}',
    'not_a_file': 'Not a file: {file_path}',
    'file_too_large': 'File too large: {file_path}',
    'read_error': 'Error reading file {file_path}: {error}',
    'chat_error': 'Error during chat: {error}',
    'unexpected_error': 'Unexpected error: {error}'
}

# Success messages
SUCCESS_MESSAGES = {
    'model_switched': 'Switched to: {api}.{model}',
    'env_initialized': 'Environment initialized successfully!',
    'bye': 'Bye!'
}

# Usage messages
USAGE_MESSAGES = {
    'load_command': 'Usage: /load <api> <model>',
    'list_command': 'Usage: /ls <api> or /list <api>'
}
